Typically, a motor can be controlled by turning on or off a supply of current to the motor. A microprocessor can be incorporated to control the motor along with performing other functions in a multi-tasking operating environment, such as a camera or camcorder. The microprocessor is typically interrupted while controlling and operating the motor causing interrupt latency that can be below the precision required by the motor. This interrupt latency can cause oscillations in the motor system that reduced performance, efficiency and caused audible motor/gear noise.
To improve efficiency, reduce oscillations, and reduce noise, pulse width modulation (PWM) circuitries are used in conjunction with the microprocessor to control the power being applied to each motor coil of the motor. With the PWM circuitries, a motor can be configured to micro-step which can demand more usage of the microprocessor. Motor servicing requirements often exceed the interrupt latency of the microprocessor and/or cause the microprocessor to spend considerable time servicing interrupts to change the PWM configurations.